import os
from datetime import datetime, timedelta

# 设置要操作的根目录
base_dir = "/home/avs/vlog/raw/"

# 获取指定目录下的所有子目录
def get_subdirectories(base_dir):
    """获取指定目录下的所有子目录"""
    return [d for d in os.listdir(base_dir) if os.path.isdir(os.path.join(base_dir, d))]

# 删除指定日期之前的文件
def delete_files_before_date(subdir, date_str, base_dir):
    """删除指定日期之前的视频文件"""
    dir_path = os.path.join(base_dir, subdir)
    if not os.path.exists(dir_path):
        print(f"Directory {dir_path} does not exist, skipping...")
        return

    # 遍历子目录中的文件
    for filename in os.listdir(dir_path):

        # 判断 .mp4 或 .tmp 文件
        if filename.endswith(".mp4") or filename.endswith(".tmp"):
            # 提取文件日期部分
            file_date_str = filename.split('-')[0:3]  # 格式: YYYY-MM-DD
            file_date = '-'.join(file_date_str)

            if file_date <= date_str:
                # 如果文件的日期小于指定日期，删除该文件
                file_path = os.path.join(dir_path, filename)
                os.remove(file_path)
                print(f"Deleted file: {file_path}")

# 获取指定目录下的所有子目录
subdirs = get_subdirectories(base_dir)

# 获取昨天的日期
yesterday = datetime.today() - timedelta(days=1)
yesterday_str = yesterday.strftime("%Y-%m-%d")

# 遍历每个子目录并删除昨天之前的文件
for subdir in subdirs:
    delete_files_before_date(subdir, yesterday_str, base_dir)